// pages/sys/login/login.js
const app = getApp();
const util = require('../../../utils/util')
import { postMsg, postLogin } from '../../../utils/http/api'

var second = 60// 验证码计时器
var isCountDown = false

Page({

  data: {
    // 存储手机号
    phone: '',
    // 存储验证码
    code: '',
    // 验证码按钮文字
    sms_txt: '获取验证码',
  },

  // onInput 手机号输入监听
  onInput(e) {
    let phone = e.detail.value
    this.setData({ phone: phone })
  },

  // onInputCode 手机号输入监听
  onInputCode(e) {
    let code = e.detail.value
    this.setData({ code: code })
  },

  // onMsg 点击获取验证码
  onMsg(e) {
    if (!this.data.phone) {
      wx.showToast({ title: '请输入手机号', icon: 'none' })
      return
    }
    if (isCountDown) {
      wx.showToast({ title: second + 's后再获取', icon: 'none' })
      return
    }
    this.reqMsg()// 请求获取验证码
  },

  // 点击登录
  onLogin(e) {
    if (util.isNull(this.data.phone)) {
      wx.showToast({ title: '请输入手机号', icon: 'none' })
      return
    }
    // if (!this.data.code) {
    //   wx.showToast({ title: '请输入验证码', icon: 'none' })
    //   return
    // }
    this.reqLogin()// 请求获取验证码
  },

  // 请求登录 
  async reqLogin() {
    wx.showLoading({ title: '登录中', mask: true, })
    let { code, msg, data } = await postLogin({ mobile: this.data.phone, event: 'mobilelogin', captcha: this.data.code, })
    // console.log(`reqLogin...code=${code},msg=${msg},data=`, data)
    if (code == '1') {
      wx.showToast({ title: msg, icon: 'none' })

      let token = data.userinfo.token
      let mobile = data.userinfo.mobile
      let id = data.userinfo.id
      wx.setStorageSync('token', token)
      wx.setStorageSync('mobile', mobile)
      wx.setStorageSync('id', id)

      app.gl.token = token// 为全局变量设置token

      let pages = getCurrentPages()// 获取当前页面pages里的所有信息。
      let prevPage = pages[pages.length - 2]// prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面，-3是上上个页面以此类推。
      prevPage.setData({// 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
        isLogin: true,
        user: { name: '用户' + mobile, phone: mobile, id: id, }
      })
      //上一个页面内执行setData操作，将我们想要的信息保存住。当我们返回去的时候，页面已经处理完毕。
      wx.navigateBack()// 关闭当前页面
    } else {
      wx.showToast({ title: msg, icon: 'none' })
    }
  },

  // 请求验证码
  async reqMsg() {
    wx.showLoading({ title: '处理中', mask: true, })
    let { code, msg, data } = await postMsg({ mobile: this.data.phone, event: 'mobilelogin' })
    // console.log(`reqMsg...code=${code},msg=${msg},data=`, data)
    if (code == '1') {
      wx.showToast({ title: msg, icon: 'none' })
      this.data.sms_txt = second + 's'
      let timer = setInterval(() => {
        second--
        if (second <= 0) {
          clearInterval(timer) // 取消计时器
          this.data.sms_txt = "获取验证码"
          this.setData({ sms_txt: '获取验证码' })
          second = 60
          isCountDown = false
        } else {
          this.data.sms_txt = second + 's'
          this.setData({ sms_txt: second + 's' })
        }
      }, 1000)
      isCountDown = true
    } else {
      wx.showToast({ title: msg, icon: 'none' })
    }
  },

  // 生命周期函数--监听页面加载
  onLoad: function (options) {
  },

})